package com.viknix.threadpool.manager.client.spi;

import java.util.concurrent.BlockingQueue;

/**
 * @Author: Dongqi
 * @Date: 2021/10/26 16:13
 * @Version 1.0
 * @Description: 自定义阻塞队列需要实现的接口
 */
public interface CustomBlockingQueue {

    /**
     * 获取阻塞队列的类型：注意不要和已经存在的阻塞队列类型重复
     * {@link com.viknix.threadpool.manager.client.enums.BlockingQueueEnum}
     *
     * @return 阻塞队列code
     */
    Integer getCode();

    /**
     * 获取阻塞队列的名称
     *
     * @return 阻塞队列名称
     */
    String getName();

    /**
     * 获取自定义的阻塞队列
     *
     * @return 自定义的阻塞队列
     */
    BlockingQueue generateBlockingQueue();
}
